package com.it.collection_list;

import java.util.LinkedList;

/**
 * 目标：掌握LinkedList集合的使用
 */
public class Test3 {
    public static void main(String[] args) {
        // 1.创建一个队列(先进先出，后进后出)
        LinkedList<String> queue = new LinkedList<>();
        // addLast()=>从尾部添加
        // 入队
        queue.addLast("第一号人");
        queue.addLast("第二号人");
        queue.addLast("第三号人");
        queue.addLast("第四号人");
        System.out.println(queue); // [第一号人, 第二号人, 第三号人, 第四号人]
        System.out.println("----------------------");

        // removeFirst()=>从头部移除
        // 出队
        System.out.println(queue.removeFirst()); // 第一号人
        System.out.println(queue.removeFirst()); // 第二号人
        System.out.println(queue); //[第三号人, 第四号人]

        System.out.println("============================");
        // 2.创建一个栈对象(后进先出,先进后出)
        LinkedList<String> stack = new LinkedList<>();

        // 压栈(push)
//        stack.addFirst("第一颗子弹");
//        stack.addFirst("第二颗子弹");
//        stack.addFirst("第三颗子弹");

        stack.push("第一颗子弹");
        stack.push("第二颗子弹");
        stack.push("第三颗子弹");
        System.out.println(stack); // [第三颗子弹, 第二颗子弹, 第一颗子弹]

        System.out.println("---------------------");

        // 出栈(pop)
//        System.out.println(stack.removeFirst()); // 第三颗子弹
//        System.out.println(stack.removeFirst()); // 第二颗子弹

        System.out.println(stack.pop()); // 第三颗子弹
        System.out.println(stack.pop()); // 第二颗子弹
        System.out.println(stack); // [第一颗子弹]
    }
}
